
#include <iostream>

#include <fstream>
#include <cstdio>

#include <map>
#include <list>
#include <string>

#include "MapToDisk.h" 

using namespace std;

void testeF(void){
	
	//Cria conjunto de arquivos e grava ja separando como no BucketSort, de
	//forma a evitar a etapa de merging.
	// No entanto, uma tabela (a MapTable) deve ser criada para reduzir o custo
	// de busca das chaves nos arquivos
	
	
	
	cout << "-------------------------------------------------------" << endl;

	cout << "Grava estrutura do mapa em disco.... Sugou... =P  "  << endl;
	
	
	FILE * mapToDisk = fopen("mapToDisk", "r+");
	if(mapToDisk == NULL)
		mapToDisk = fopen("mapToDisk", "w+"); //se nao existe, cria
		
	if(mapToDisk == NULL){ //se erro, reporta e finaliza
		cout << "Erro ao abrir o arquivo mapToDisk " << endl;
		exit(1);
	}

	char *memBuffer = new char [10];
	string teste("um teste");
	int sizeString = teste.size();
	memcpy(memBuffer, teste.c_str(), sizeString);
	
	fwrite( memBuffer, sizeof(char)*sizeString, 1, mapToDisk);

	delete [] memBuffer;

	fclose(mapToDisk);
	cout << "-------------------------------------------------------" << endl;
	
	cout << "Recupera do Discco mapeado... " << endl;
	
	mapToDisk = fopen("mapToDisk", "r+");
	if(mapToDisk == NULL)
		mapToDisk = fopen("mapToDisk", "w+"); //se nao existe, cria
		
	if(mapToDisk == NULL){ //se erro, reporta e finaliza
		cout << "Erro ao abrir o arquivo mapToDisk " << endl;
		exit(1);
	}
	
	fread(memBuffer, sizeof(char)*sizeString, 1, mapToDisk);
	
	teste.clear();
	teste.append(memBuffer, sizeString);
	cout << " No Buffer tem:  " << teste <<  endl;
	
	fclose(mapToDisk);

}



